package com.group.yqxxb.pojo;

import com.alibaba.fastjson.JSONArray;
import lombok.Data;

import java.util.List;

/**
 * @author hzy
 * 发送群体消息的参数类
 * */
@Data
public class SingleBatchMessage {
    /**
     * 消息的发送方的accid
     * 普通信息接口必须
     * */
    private String fromAccid;

    /**
     * 要群发的所有账号
     * */
    private List<String> toAccids;

    /**
     * 0 表示文本消息,
     * 1 表示图片，
     * 2 表示语音，
     * 3 表示视频，
     * 4 表示地理位置信息，
     * 6 表示文件，
     * 10 表示提示消息，
     * 100 自定义消息类型（特别注意，对于未对接易盾反垃圾功能的应用，该类型的消息不会提交反垃圾系统检测）
     * 普通信息接口必须
     * */
    private Integer type;

    /**
     * 最大长度5000字符，JSON格式。
     * 也就是存放发送的消息的内容，存放形式为JSON，具体看文档
     * 普通信息接口必须
     * */
    /*------类型有问题----*/

    private MessageBody body;

    /**
     * 消息描述文本，针对非Text、Tip类型的消息有效，最大长度500字符。该描述信息可用于云端历史消息关键词检索。
     * */
    private String msgDesc;



    /**
     * 发消息时特殊指定的行为选项,JSON格式，可用于指定消息的漫游，存云端历史，发送方多端同步，推送，消息抄送等特殊行为;option中字段不填时表示默认值 ，option示例:
     *
     * {"push":false,"roam":true,"history":false,"sendersync":true,"route":false,"badge":false,"needPushNick":true}
     * 字段说明：
     * 1. roam: 该消息是否需要漫游，默认true（需要app开通漫游消息功能）；
     * 2. history: 该消息是否存云端历史，默认true；
     * 3. sendersync: 该消息是否需要发送方多端同步，默认true；
     * 4. push: 该消息是否需要APNS推送或安卓系统通知栏推送，默认true；
     * 5. route: 该消息是否需要抄送第三方；默认true (需要app开通消息抄送功能);
     * 6. badge:该消息是否需要计入到未读计数中，默认true;
     * 7. needPushNick: 推送文案是否需要带上昵称，不设置该参数时默认true;
     * 8. persistent: 是否需要存离线消息，不设置该参数时默认true;
     * 9. sessionUpdate: 是否将本消息更新到会话列表服务里本会话的lastmsg，默认true。
     * */
    private String option;

    /**
     * 推送文案 如  xxx发来了一张图片
     * */
    private String pushcontent;

    /**
     * 必须是JSON,不能超过2k字符。该参数与APNs推送的payload含义不同
     * */
    private String payload;

    /**
     * 开发者扩展字段，长度限制1024字符
     * */
    private String ext;


    /**
     * 可选，反垃圾业务ID，实现“单条消息配置对应反垃圾”，若不填则使用原来的反垃圾配置
     * */
    private String bid;

    /**
     * 可选，单条消息是否使用易盾反垃圾，可选值为0。
     * 0：（在开通易盾的情况下）不使用易盾反垃圾而是使用通用反垃圾，包括自定义消息。
     *
     * 若不填此字段，即在默认情况下，若应用开通了易盾反垃圾功能，则使用易盾反垃圾来进行垃圾消息的判断
     * */
    private Integer useYidun;

    /**
     * 基本无用---------------------
     * 可选，易盾反垃圾增强反作弊专属字段，限制json，长度限制1024字符
     * */
    private String yidunAntiCheating;

    /**
     * 是否需要返回消息ID
     * false：不返回消息ID（默认值）
     * true：返回消息ID（toAccids包含的账号数量不可以超过100个）
     * */
    private Boolean returnMsgid;


    /**
     * 所属环境，根据env可以配置不同的抄送地址
     * */
    private String env;
}
